package com.atguigu.lease.common.minio;

import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * projectName: com.atguigu.lease.common.minio
 *
 * @author: 赵伟风
 * description: 接收配置参数中的参数
 * @ConfigurationProperties(prefix = "minio")
 *   批量配置参数读取,只要最后一层和我们的属性对应即可! 支持 - 和 驼峰式映射自动转化
 * 细节1:  ConfigurationProperties出现了红线?  原因: 当前类的组件没有加入到ioc容器!!
 *    方案1: @Component 直接加入到ioc容器 [不推荐 (饿汉式)]
 *    方案2: @EnableConfigurationProperties(配置类.class) 在使用的配置类开启注解加入到ioc容器
 * 细节2: 为什么爆红以及没有提示的问题!
 *    步骤1: 导入依赖,生成提示文件的插件
 *        <dependency>
 *             <groupId>org.springframework.boot</groupId>
 *             <artifactId>spring-boot-configuration-processor</artifactId>
 *             <optional>true</optional>
 *         </dependency>
 *    步骤2: 点击maven / compile 然后生成spring-configuration-metadata.json配置文件
 *
 * 细节3: 属性并不是对齐的! 有嵌套关系
 *    例如:
 *        minio.endpoint = xx
 *        minio.user.username=xxx
 *        minio.user.password=xxx
 *    课下思考下???
 *    为什么爆红以及没有提示的问题! -> 网站 -> 划一点 就讲了嵌套属性的问题
 */
@ConfigurationProperties(prefix = "minio")
@Data
public class MinioProperties {


    //@Value("${minio.endpoint}") 单独读取

    private String endpoint;

    private String accessKey;

    private String secretKey;

    private String bucketName;

}
